Extensibility is a topic of increasing importance in the software industry. In some examples, software applications are delivered by a software provider to support a certain domain through a set of predefined functionalities. Customers that acquire software applications can require additional functionalities that are not supported by the base software. In some examples, these additional functionalities can be realized through extensions. In some examples, extensions can be defined and/or developed by different roles. For example, extensions can be provided by the provider of the base software (the vendor), by the customer, and/or by a third party (e.g., an independent software vendor (ISV)). In some examples, to enable extensions, the provider of the base software defines extensibility concepts and mechanisms for the base software and provides supporting tools.